package interfaces

type IComponentFunction interface {
	Open(ctx IContext) error
	Close() error
	SourceTableStructSetFinished(ctx IContext) error
	Process(ctx IContext) error
}

const (
	KIND_SOURCE    = "source"
	KIND_TRANSFORM = "transform"
	KIND_SINK      = "sink"
)

type IFunctionFactory interface {
	RegisterFunction(kind string, operator string, provider string, function CreateComponentFunction)
}

type CreateComponentFunction func(params map[string]interface{}) (IComponentFunction, error)
